package com.edu.exam.enums.examination.online.technical;

import com.edu.exam.enums.core.BaseEnum;

/**
 * 插件类型枚举
 */
public enum PluginType implements BaseEnum {
    INPUT_PLUGIN("INPUT_PLUGIN", "输入插件"),
    OUTPUT_PLUGIN("OUTPUT_PLUGIN", "输出插件"),
    PROCESSING_PLUGIN("PROCESSING_PLUGIN", "处理插件"),
    FILTER_PLUGIN("FILTER_PLUGIN", "过滤器插件"),
    TRANSFORM_PLUGIN("TRANSFORM_PLUGIN", "转换插件"),
    VALIDATION_PLUGIN("VALIDATION_PLUGIN", "验证插件"),
    AUTHENTICATION_PLUGIN("AUTHENTICATION_PLUGIN", "认证插件"),
    AUTHORIZATION_PLUGIN("AUTHORIZATION_PLUGIN", "授权插件"),
    ENCRYPTION_PLUGIN("ENCRYPTION_PLUGIN", "加密插件"),
    COMPRESSION_PLUGIN("COMPRESSION_PLUGIN", "压缩插件"),
    DECOMPRESSION_PLUGIN("DECOMPRESSION_PLUGIN", "解压插件"),
    CONVERSION_PLUGIN("CONVERSION_PLUGIN", "转换插件"),
    FORMAT_PLUGIN("FORMAT_PLUGIN", "格式插件"),
    PROTOCOL_PLUGIN("PROTOCOL_PLUGIN", "协议插件"),
    API_PLUGIN("API_PLUGIN", "API插件"),
    DATABASE_PLUGIN("DATABASE_PLUGIN", "数据库插件"),
    CACHE_PLUGIN("CACHE_PLUGIN", "缓存插件"),
    LOG_PLUGIN("LOG_PLUGIN", "日志插件"),
    MONITOR_PLUGIN("MONITOR_PLUGIN", "监控插件"),
    SECURITY_PLUGIN("SECURITY_PLUGIN", "安全插件");

    private final String code;
    private final String description;

    PluginType(String code, String description) {
        this.code = code;
        this.description = description;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getDescription() {
        return description;
    }
}
